Experience Embedded

Professional Training, Consulting and Project Support

Embedded Linux Architecture: Kernel Driver Development - Face-to-Face Training

  • Content
     
  • Objectives
     
  • Participants
     
  • Requirements
     

How do I develop a kernel driver? What do I have to consider in embedded and real-time systems?

The development of high-performance drivers requires a basic understanding of the kernel architecture, and this is the focus of our training.

It provides an overview of the kernel structure and then highlights the components that are relevant to embedded systems. Attendees thus get a complete view of the operating system which is a prerequisite for the professional development of drivers.

The exercise comprises the basic structure of a kernel driver which is step by step extended with the mechanisms discussed in the training. At the end of the training, you have developed an entire driver and can develop drivers in your project.

Software developers, software architects

This training requires a knowledge level as accomplished with our training "Embedded Real-Time Linux".

Linux Kernel Basics

  • System interface, privilege levels
  • Virtual filesystem, address spaces
  • Device driver classes (character, block, net)
  • Kernel modules

Character Device Driver

  • Implementation of the file interface
  • Device nodes
  • Udev daemon
  • Hardware access; register, IO memory, DMA
  • /proc and /sys filesystem; use in kernel driver

Scheduling

  • Scheduling classes
  • Processes and threads, kernel threads
  • Wait queue; interruptible sleep

Interrupts

  • Interrupt service routine
  • Secondary reactions (softIRQ, tasklet, kernel timer)
  • High-resolution timer (hrtimer)

Synchronization Mechanisms

  • Atomic variables
  • Preemption lock, interrupt lock
  • Ring buffer, kernel FIFO
  • Semaphore, mutex, RW semaphore
  • Completion
  • Spinlock, RW lock, sequence lock
  • Diagnosis of locking problems

Memory Management

  • Memory protection, memory management unit (MMU)
  • Memory types, DMA, high memory
  • Physical memory management
  • SLAB allocator, kernel malloc
  • Data exchange with userspace, memory mapping

Hardware

  • All exercises are performed on a phyBOARD with ARM Cortex-A8 (AM-335x) using freely accessible open source tools

MicroConsult Plus:

  • Participants may keep the exercise board to deepen their new knowledge.

The training price includes:
Lunch, drinks, training documentation and your training certificate.


ALL INCLUSIVE!

Related trainings

Embedded Real-Time Linux from Bootloader to Real-Time System (Linux RTOS) - Face-to-Face Training
Training code: E-LIN-RTD

Embedded Linux for Test and Support - Face-to-Face Training
Training code: E-LIN-T

Embedded Linux Software Development - Face-to-Face Training
Training code: E-LIN-SWE


Related trainings

FACE-TO-FACE TRAINING

Price *Duration
2.600,00 €4 days
Training code: E-LIN-AR
* Price per attendee, in Euro plus VAT
> Registration form download (PDF)> Training details as PDF

Onsite Training

Our customized workshops integrate your specific project tasks in our training content and accommodate your requirements on content, time, location, duration, technical environment and knowledge transfer methodology.

Please contact us for further information or an individual quotation.

> Training details as PDF

Live Online - English

Duration
4 days  

Face-To-Face - German

Date Duration
17.06. – 20.06.2024 4 days  
07.10. – 10.10.2024 4 days  
17.02. – 20.02.2025 4 days  

Live Online - German

Duration
4 days  

Coaching

Our coaching services offer a major advantage: our specialists introduce their expertise and experience directly in your solution process, thus contributing to the success of your projects.

We will be happy to provide you with further information or submit a quotation tailored to your requirements.

Embedded Linux Architecture: Kernel Driver Development - Face-to-Face Training

Content

Linux Kernel Basics

  • System interface, privilege levels
  • Virtual filesystem, address spaces
  • Device driver classes (character, block, net)
  • Kernel modules

Character Device Driver

  • Implementation of the file interface
  • Device nodes
  • Udev daemon
  • Hardware access; register, IO memory, DMA
  • /proc and /sys filesystem; use in kernel driver

Scheduling

  • Scheduling classes
  • Processes and threads, kernel threads
  • Wait queue; interruptible sleep

Interrupts

  • Interrupt service routine
  • Secondary reactions (softIRQ, tasklet, kernel timer)
  • High-resolution timer (hrtimer)

Synchronization Mechanisms

  • Atomic variables
  • Preemption lock, interrupt lock
  • Ring buffer, kernel FIFO
  • Semaphore, mutex, RW semaphore
  • Completion
  • Spinlock, RW lock, sequence lock
  • Diagnosis of locking problems

Memory Management

  • Memory protection, memory management unit (MMU)
  • Memory types, DMA, high memory
  • Physical memory management
  • SLAB allocator, kernel malloc
  • Data exchange with userspace, memory mapping

Hardware

  • All exercises are performed on a phyBOARD with ARM Cortex-A8 (AM-335x) using freely accessible open source tools

MicroConsult Plus:

  • Participants may keep the exercise board to deepen their new knowledge.